//引入请求文件
var util = require('../../utils/util.js');
var WXBizDataCrypt = require('../../crypto/WXBizDataCrypt.js');
var config = require('../../config.js');
let app = getApp();
let url = app.url;
let gobalData = app.gobalData;
// 存储用户信息
let userInfo = {};
    userInfo.city = gobalData.city;
Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		showModal: false,    //为了用户体验，先隐藏
		empowerFlag: false,
		userInfo: {}
	},
	// 跳转到我的订单
	myOrder() {
		let cid = wx.getStorageSync('userInfo').userInfo.id;
		wx.navigateTo({
			url: "/pages/myOrder/index?cid=" + cid
		})
	},
	// 跳转到我的帖子
	myPost() {
		let cid = wx.getStorageSync('userInfo').userInfo.id;
		wx.navigateTo({
			url: "/pages/myPost/index?cid=" + cid
		})
	},
	// 跳转到我的监管
	mySupervise() {
		let cid = wx.getStorageSync('userInfo').userInfo.id;
		wx.navigateTo({
			url: "/pages/mySupervise/index?cid=" + cid
		})
	},
	// 跳转到短信验证界面
	goshortMessage() {
		wx.navigateTo({
			url: "/pages/shortMessage/index"
		})
	},
	// 拨打电话
	sendPhone: function() {
		wx.showModal({
			title: '咨询电话',
			content: '400-1000-466',
			cancelColor: '#fd8439',
			confirmText: '拨打电话',
			confirmColor: '#fd8439',
			success: function(res) {
				// 判断用户点击的是拨打电话还是取消
				if (res.confirm) {
					wx.makePhoneCall({
						phoneNumber: '4001000466'
					})
				}
			}
		})
	},
	// 进行短信授权
	goEmpower: function() {
		this.setData({
			showModal: true
		})
	},
	// 获取用户信息
	onGetUserInfo: function(e) {
		if (e.detail.errMsg == 'getUserInfo:fail auth deny') {
			wx.showModal({
				title: '提示',
				showCancel: false,
				content: '您取消了授权',
			})
		} else {
			// 获取用户信息  存储后台需要的数据
			userInfo.name = gobalData.name = e.detail.userInfo.nickName;
			userInfo.gender = gobalData.gender = e.detail.userInfo.gender;
			userInfo.avatar = gobalData.avatar = e.detail.userInfo.avatarUrl;
			userInfo.openid = gobalData.openid;
			if (gobalData.name != "" && gobalData.gender != "" && gobalData.avatar != "") {
				this.setData({
					empowerFlag: true
				})
			}
		}

	},
	// 获取用户手机号
	onGetPhoneNumber: function(e) {
		if (this.data.empowerFlag == false) {
			wx.showToast({
				title: '授权失败\n请先操作上一步',
				icon: 'none'
			})
		} else {
			if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
				wx.showModal({
					title: '提示',
					showCancel: false,
					content: '您取消了授权',
					success: function(res) {}
				})
			} else {
				// 用户同意授权   ---解密手机号
				var pc = new WXBizDataCrypt(gobalData.appId, gobalData.session_key)
				var data = pc.decryptData(e.detail.encryptedData, e.detail.iv)
				// console.log('解密后 data: ', data); //解密手机号
				// 将获取到的手机号存储起来
				gobalData.mobile = data.phoneNumber;
				userInfo.mobile = gobalData.mobile;
				
				userInfo.registerType = 1; // 微信一键授权登录
				// 将数据发送给后台进行注册
				// console.log(userInfo);

				util(`${url}user/register`, userInfo).then(res => {
					if (res.status == 1) {
						wx.showToast({
							title: '注册成功！'
						})
						config.idFlag = true;
						// 关闭模态框
						this.hideModal();
						// 存储到当前页面
						this.setData({
							userInfo: userInfo,
							showModal: false
						})
						// 保存到缓存
						wx.setStorage({
							key: 'userInfo',
							data: res.content
						})
						gobalData.cid = res.content.userInfo.id;
						// 已经注册过。
					} else if (res.msg == '你已经注册！') {
						util(`${url}user/login`, {
							openid: gobalData.openid
						}).then(res => {
							wx.setStorage({
								key: 'userInfo',
								data: res.content
							})
							// console.log(wx.getStorageSync('userInfo'));
							this.setData({
								userInfo: userInfo,
								showModal: false
							})
							gobalData.cid = res.content.userInfo.id
						})
						// 其它错误
					} else {
						wx.navigateTo({
							url: "/pages/shortMessage/index"
						})
					}
				})

			}
		}
	},
	toggleEmpowerTwo() {
		this.setData({
			empowerFlag: true
		})
	},
	/**
	 * 弹出框蒙层截断touchmove事件
	 */
	/**
	 * 隐藏模态对话框
	 */
	hideModal: function() {
		this.setData({
			showModal: false
		});
	},
	// 显示模态对话框
	showModal: function() {
		this.setData({
			showModal: true
		});
	},
	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function(options) {
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function() {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function() {
		util(`${url}user/login`, {
			openid: gobalData.openid
		}).then(res => {
			if (res.status == 1) {
				// 存储到当前页面
				this.setData({
					userInfo: res.content.userInfo,
					showModal: false
				})
				wx.setStorage({
					key: 'userInfo',
					data: res.content
				})
				gobalData.cid = res.content.userInfo.id;
			} else {
				// 如果用户没有登录注册过，弹出注册框
				this.showModal();
			}
		})
// 		app.sliderightshow(this, 'slide_up1', -200, 1)
// 		setTimeout(function() {
// 			app.sliderightshow(this, 'slide_up2', -200, 1)
// 		}.bind(this), 200);
	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function() {
// 		//你可以看到，动画参数的200,0与渐入时的-200,1刚好是相反的，其实也就做到了页面还原的作用，使页面重新打开时重新展示动画
// 		app.sliderightshow(this, 'slide_up1', 200, 0)
// 		//延时展现容器2，做到瀑布流的效果，见上面预览图
// 		setTimeout(function() {
// 			app.sliderightshow(this, 'slide_up2', 200, 0)
// 		}.bind(this), 200);
	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function() {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function() {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function() {

	}
})
